package net.tools.javassist;

import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;

/**
 * 可以用方式，破解一些加密的Jar文件
 * 需要的Jar包有 javassist.jar
 */
public class ExampleMain {

	public static void main(String[] args) throws Exception {
		ClassPool pool = ClassPool.getDefault();

		//class的路径
		pool.insertClassPath("E:\\test");

		//class的包名
		CtClass cc = pool.get("com.test.Main");
		//设置方法需要的参数
		CtClass[] param = new CtClass[1];
		param[0] = pool.get("int");

		//指定哪个方法
		CtMethod m = cc.getDeclaredMethod("b", param);
		//插入新的代码到最前面
		//		m.insertBefore("{return \"a\" ;}");
		//重新设置方法体
		m.setBody("{return ;}");
		//保存到文件里,文件会保持到该工程下
		cc.writeFile();
	}

	public String aa(int i) {
		switch (i) {
		case 0:
			return "b";
		default:
			return "a";
		}
	}
}